"""
变量按照函数内外(作用范围)分

全局变量: 函数外定义的变量, 可以在任何位置使用
局部变量: 函数内定义的变量, 只能在函数内使用.

在函数中需要修改全局变量，需要使用 global 进行声明
否则只会在函数内部, 产生一个同名的局部变量
"""

"""全局变量的使用"""
num = 10  # 全局变量


def demo1():
    # 只是定义了一个局部变量，不会修改到全局变量
    num = 100
    a = 10  # 局部变量, 只能在函数内使用
    print("demo1.num=", num)
    print("a", a)


def demo2():
    print("demo2.num=", num)  # 在函数内可以使用全局变量


demo1()
demo2()
print(num)  # 在函数外使用全局变量
# print(a)  # a是局部变量, 无法在函数外使用

print("---")

"""在函数内更改全局变量"""
"""默认情况下, 无法在函数内部修改全局变量, 只能使用"""
num = 10  # 全局变量


def demo1():
    # 在函数中需要修改全局变量，需要使用 global 进行声明
    global num  # 告诉解释器, 下面的num就是全局的num
    num = 100  # 局部变量, 只能在函数内使用. 这个只是和外面的num同名. 但不是一个
    print("demo1.num=", num)


demo1()
print("函数外.num=", num)  # 在函数外使用全局变量
